home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / CIncludes / ConditionalMacros.h next >
Encoding:
C/C++ Source or Header  |  1999-05-18  |  44.9 KB  |  1,469 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        ConditionalMacros.h
  3.  
  4.      Contains:    Set up for compiler independent conditionals
  5.  
  6.      Version:    Technology:    Universal Interface Files 3.2
  7.                  Release:    QuickTime 4.0
  8.  
  9.      Copyright:    © 1993-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __CONDITIONALMACROS__
  18. #define __CONDITIONALMACROS__
  19.  
  20. /****************************************************************************************************
  21.     UNIVERSAL_INTERFACES_VERSION
  22.     
  23.         0x0320 => version 3.2
  24.         0x0310 => version 3.1
  25.         0x0301 => version 3.0.1
  26.         0x0300 => version 3.0
  27.         0x0210 => version 2.1
  28.         This conditional did not exist prior to version 2.1
  29. ****************************************************************************************************/
  30. #define UNIVERSAL_INTERFACES_VERSION 0x0320
  31.  
  32. /****************************************************************************************************
  33.  
  34.     TARGET_CPU_≈    
  35.     These conditionals specify which microprocessor instruction set is being
  36.     generated.  At most one of these is true, the rest are false.
  37.  
  38.         TARGET_CPU_PPC            - Compiler is generating PowerPC instructions
  39.         TARGET_CPU_68K            - Compiler is generating 680x0 instructions
  40.         TARGET_CPU_X86            - Compiler is generating x86 instructions
  41.         TARGET_CPU_MIPS            - Compiler is generating MIPS instructions
  42.         TARGET_CPU_SPARC        - Compiler is generating Sparc instructions
  43.         TARGET_CPU_ALPHA        - Compiler is generating Dec Alpha instructions
  44.  
  45.  
  46.     TARGET_OS_≈    
  47.     These conditionals specify in which Operating System the generated code will
  48.     run. At most one of the these is true, the rest are false.
  49.  
  50.         TARGET_OS_MAC            - Generate code will run under Mac OS
  51.         TARGET_OS_WIN32            - Generate code will run under 32-bit Windows
  52.         TARGET_OS_UNIX            - Generate code will run under some unix 
  53.  
  54.  
  55.     TARGET_RT_≈    
  56.     These conditionals specify in which runtime the generated code will
  57.     run. This is needed when the OS and CPU support more than one runtime
  58.     (e.g. MacOS on 68K supports CFM68K and Classic 68k).
  59.  
  60.         TARGET_RT_LITTLE_ENDIAN    - Generated code uses little endian format for integers
  61.         TARGET_RT_BIG_ENDIAN    - Generated code uses big endian format for integers     
  62.         TARGET_RT_MAC_CFM        - TARGET_OS_MAC is true and CFM68K or PowerPC CFM being used    
  63.         TARGET_RT_MAC_68881        - TARGET_OS_MAC is true and 68881 floating point instructions used    
  64.  
  65.  
  66.     PRAGMA_≈
  67.     These conditionals specify whether the compiler supports particular #pragma's
  68.     
  69.         PRAGMA_IMPORT             - Compiler supports: #pragma import on/off/reset
  70.         PRAGMA_ONCE              - Compiler supports: #pragma once
  71.         PRAGMA_STRUCT_ALIGN      - Compiler supports: #pragma options align=mac68k/power/reset
  72.         PRAGMA_STRUCT_PACK        - Compiler supports: #pragma pack(n)
  73.         PRAGMA_STRUCT_PACKPUSH    - Compiler supports: #pragma pack(push, n)/pack(pop)
  74.         PRAGMA_ENUM_PACK         - Compiler supports: #pragma options(!pack_enums)
  75.         PRAGMA_ENUM_ALWAYSINT     - Compiler supports: #pragma enumsalwaysint on/off/reset
  76.         PRAGMA_ENUM_OPTIONS        - Compiler supports: #pragma options enum=int/small/reset
  77.  
  78.     FOUR_CHAR_CODE
  79.     This conditional does the proper byte swapping to assue that a four character code (e.g. 'TEXT')
  80.     is compiled down to the correct value on all compilers.
  81.  
  82.         FOUR_CHAR_CODE('abcd')    - Convert a four-char-code to the correct 32-bit value
  83.  
  84.     TYPE_≈
  85.     These conditionals specify whether the compiler supports particular types.
  86.  
  87.         TYPE_LONGLONG            - Compiler supports "long long" 64-bit integers
  88.         TYPE_BOOL                - Compiler supports "bool"
  89.         TYPE_EXTENDED            - Compiler supports "extended" 80/96 bit floating point
  90.  
  91. ****************************************************************************************************/
  92.  
  93. #if defined(__MRC__)
  94.     /*
  95.         MrC[pp] compiler from Apple Computer, Inc.
  96.     */
  97.     #define TARGET_CPU_PPC              1
  98.     #define TARGET_CPU_68K              0
  99.     #define TARGET_CPU_X86              0
  100.     #define TARGET_CPU_MIPS             0
  101.     #define TARGET_CPU_SPARC            0        
  102.     #define TARGET_CPU_ALPHA            0
  103.     #define TARGET_OS_MAC                1
  104.     #define TARGET_OS_WIN32                0
  105.     #define TARGET_OS_UNIX                0
  106.     #define TARGET_RT_LITTLE_ENDIAN        0
  107.     #define TARGET_RT_BIG_ENDIAN        1
  108.     #define TARGET_RT_MAC_CFM            1
  109.     #define TARGET_RT_MAC_68881            0
  110.     #if (__MRC__  > 0x0200) && (__MRC__ < 0x0700)
  111.         #define PRAGMA_IMPORT            1
  112.     #else
  113.         #define PRAGMA_IMPORT            0
  114.     #endif
  115.     #define PRAGMA_STRUCT_ALIGN            1
  116.     #define PRAGMA_ONCE                    1
  117.     #define PRAGMA_STRUCT_PACK            0
  118.     #define PRAGMA_STRUCT_PACKPUSH        0
  119.     #define PRAGMA_ENUM_PACK            1
  120.     #define PRAGMA_ENUM_ALWAYSINT        0
  121.     #define PRAGMA_ENUM_OPTIONS            0
  122.     #define FOUR_CHAR_CODE(x)            (x)
  123.         
  124.     #if (__MRC__  > 0x0300) && (__MRC__ < 0x0700)
  125.         #if __option(longlong)
  126.             /* Current revs of MrC do not handle long long correctly*/
  127.             /* The next rev will toggle this from the command line  */
  128.             /* but for now we switch off long long.                 */
  129.             #define TYPE_LONGLONG        0
  130.         #else
  131.             #define TYPE_LONGLONG        0
  132.         #endif
  133.         #if __option(bool)
  134.             #define TYPE_BOOL            1
  135.         #else
  136.             #define TYPE_BOOL            0
  137.         #endif
  138.     #else
  139.         #define TYPE_LONGLONG            0
  140.         #define TYPE_BOOL                0
  141.     #endif
  142.     #define TYPE_EXTENDED                0
  143.     
  144.  
  145.  
  146. #elif defined(__SC__) && (defined(MPW_CPLUS) || defined(MPW_C))
  147.     /*
  148.         SC[pp] compiler from Apple Computer, Inc.
  149.     */
  150.     #define TARGET_CPU_PPC              0
  151.     #define TARGET_CPU_68K              1
  152.     #define TARGET_CPU_X86              0
  153.     #define TARGET_CPU_MIPS             0
  154.     #define TARGET_CPU_SPARC            0        
  155.     #define TARGET_CPU_ALPHA            0
  156.     #define TARGET_OS_MAC                1
  157.     #define TARGET_OS_WIN32                0
  158.     #define TARGET_OS_UNIX                0
  159.     #define TARGET_RT_LITTLE_ENDIAN        0
  160.     #define TARGET_RT_BIG_ENDIAN        1
  161.     #if defined(__CFM68K__)
  162.         #define TARGET_RT_MAC_CFM        1
  163.     #else
  164.         #define TARGET_RT_MAC_CFM        0
  165.     #endif
  166.     #if defined(mc68881)
  167.         #define TARGET_RT_MAC_68881        1
  168.     #else
  169.         #define TARGET_RT_MAC_68881        0
  170.     #endif
  171.     #if TARGET_RT_MAC_CFM 
  172.         #define PRAGMA_IMPORT            1
  173.         #if (__SC__ <= 0x0810)
  174.             /* old versions of SC don't support “#pragma import reset” */
  175.             #define PRAGMA_IMPORT_OFF    1
  176.         #endif
  177.     #else
  178.         #define PRAGMA_IMPORT            0
  179.     #endif
  180.     #if (__SC__  >= 0x0801)
  181.         #define PRAGMA_STRUCT_ALIGN        1
  182.     #else
  183.         #define PRAGMA_STRUCT_ALIGN        0
  184.     #endif
  185.     #define PRAGMA_ONCE                    0
  186.     #define PRAGMA_STRUCT_PACK            0
  187.     #define PRAGMA_STRUCT_PACKPUSH        0
  188.     #define PRAGMA_ENUM_PACK            1
  189.     #define PRAGMA_ENUM_ALWAYSINT        0
  190.     #define PRAGMA_ENUM_OPTIONS            0
  191.     #define FOUR_CHAR_CODE(x)            (x)
  192.     
  193.     #define TYPE_LONGLONG                0
  194.     #define TYPE_EXTENDED                1
  195.     #if (__SC__  > 0x0810)
  196.         #if __option(bool)
  197.             #define TYPE_BOOL            1
  198.         #else
  199.             #define TYPE_BOOL            0
  200.         #endif
  201.     #else
  202.         #define TYPE_BOOL                0
  203.     #endif
  204.         
  205.  
  206.  
  207. #elif defined(__MWERKS__)
  208.     /*
  209.         CodeWarrior compiler from Metrowerks, Inc.
  210.     */
  211.     #if (__MWERKS__ < 0x0900) || macintosh
  212.         #define TARGET_OS_MAC                1
  213.         #define TARGET_OS_WIN32                0
  214.         #define TARGET_OS_UNIX                0
  215.         #define TARGET_CPU_X86              0
  216.         #define TARGET_CPU_MIPS             0
  217.         #define TARGET_CPU_SPARC            0        
  218.         #define TARGET_CPU_ALPHA            0
  219.         #define TARGET_RT_LITTLE_ENDIAN        0
  220.         #define TARGET_RT_BIG_ENDIAN        1
  221.         #if powerc
  222.             #define TARGET_CPU_PPC          1
  223.             #define TARGET_CPU_68K          0
  224.             #define TARGET_RT_MAC_CFM        1
  225.             #define TARGET_RT_MAC_68881        0
  226.         #else
  227.             #define TARGET_CPU_PPC          0
  228.             #define TARGET_CPU_68K          1
  229.             #if defined(__CFM68K__)
  230.                 #define TARGET_RT_MAC_CFM    1
  231.             #else
  232.                 #define TARGET_RT_MAC_CFM    0
  233.             #endif
  234.             #if __MC68881__
  235.                 #define TARGET_RT_MAC_68881    1
  236.             #else
  237.                 #define TARGET_RT_MAC_68881    0
  238.             #endif
  239.         #endif
  240.         #define PRAGMA_ONCE                    1
  241.         #if (__MWERKS__ >= 0x0700)
  242.             #define PRAGMA_IMPORT            TARGET_RT_MAC_CFM
  243.         #else
  244.             #define PRAGMA_IMPORT            0
  245.         #endif
  246.         #define PRAGMA_STRUCT_ALIGN            1
  247.         #define PRAGMA_STRUCT_PACK            0
  248.         #define PRAGMA_STRUCT_PACKPUSH        0
  249.         #define PRAGMA_ENUM_PACK            0
  250.         #define PRAGMA_ENUM_ALWAYSINT        1
  251.         #define PRAGMA_ENUM_OPTIONS            0
  252.         #define FOUR_CHAR_CODE(x)            (x)
  253.  
  254.     
  255.     #elif (__MWERKS__ >= 0x0900) && __INTEL__
  256.         #define TARGET_CPU_PPC              0
  257.         #define TARGET_CPU_68K              0
  258.         #define TARGET_CPU_X86              1
  259.         #define TARGET_CPU_MIPS             0
  260.         #define TARGET_CPU_SPARC            0        
  261.         #define TARGET_CPU_ALPHA            0
  262.         #define TARGET_OS_MAC                0
  263.         #define TARGET_OS_WIN32                1
  264.         #define TARGET_OS_UNIX                0
  265.         #define TARGET_RT_LITTLE_ENDIAN        1
  266.         #define TARGET_RT_BIG_ENDIAN        0
  267.         #define TARGET_RT_MAC_CFM            0
  268.         #define TARGET_RT_MAC_68881            0
  269.         #define PRAGMA_ONCE                    1
  270.         #define PRAGMA_IMPORT                0
  271.         #define PRAGMA_STRUCT_ALIGN            0
  272.         #define PRAGMA_STRUCT_PACK            1
  273.         #define PRAGMA_STRUCT_PACKPUSH        1
  274.         #define PRAGMA_ENUM_PACK            0
  275.         #define PRAGMA_ENUM_ALWAYSINT        1
  276.         #define PRAGMA_ENUM_OPTIONS            0
  277.         #define FOUR_CHAR_CODE(x)            (x)
  278.  
  279.  
  280.     #elif (__MWERKS__ >= 0x1900) && __MIPS__
  281.         #define TARGET_CPU_PPC              0
  282.         #define TARGET_CPU_68K              0
  283.         #define TARGET_CPU_X86              0
  284.         #define TARGET_CPU_MIPS             1
  285.         #define TARGET_CPU_SPARC            0        
  286.         #define TARGET_CPU_ALPHA            0
  287.         #define TARGET_OS_MAC                0
  288.         #define TARGET_OS_WIN32                0
  289.         #define TARGET_OS_UNIX                1
  290.         #if __option(little_endian)
  291.             #define TARGET_RT_LITTLE_ENDIAN    1
  292.             #define TARGET_RT_BIG_ENDIAN    0
  293.         #else
  294.             #define TARGET_RT_LITTLE_ENDIAN    0
  295.             #define TARGET_RT_BIG_ENDIAN    1
  296.         #endif
  297.         #define TARGET_RT_MAC_CFM            0
  298.         #define TARGET_RT_MAC_68881            0
  299.         #define PRAGMA_ONCE                    1
  300.         #define PRAGMA_IMPORT                0
  301.         #define PRAGMA_STRUCT_ALIGN            0
  302.         #define PRAGMA_STRUCT_PACK            1
  303.         #define PRAGMA_STRUCT_PACKPUSH        0
  304.         #define PRAGMA_ENUM_PACK            0
  305.         #define PRAGMA_ENUM_ALWAYSINT        1
  306.         #define PRAGMA_ENUM_OPTIONS            0
  307.         #define FOUR_CHAR_CODE(x)            (x)
  308.     
  309.     #else    
  310.         #error unknown Metrowerks compiler
  311.     #endif
  312.  
  313.  
  314.     #if (__MWERKS__ >= 0x1100)
  315.         #if __option(longlong)
  316.             #define TYPE_LONGLONG        1
  317.         #else
  318.             #define TYPE_LONGLONG        0
  319.         #endif
  320.     #else
  321.         #define TYPE_LONGLONG            0
  322.     #endif
  323.     #if (__MWERKS__ >= 0x1000)
  324.         #if __option(bool)
  325.             #define TYPE_BOOL            1
  326.         #else
  327.             #define TYPE_BOOL            0
  328.         #endif
  329.     #else
  330.         #define TYPE_BOOL                0
  331.     #endif
  332.     #define TYPE_EXTENDED                0
  333.  
  334.  
  335.  
  336. #elif defined(SYMANTEC_CPLUS) || defined(SYMANTEC_C)
  337.     /*
  338.         C and C++ compiler from Symantec, Inc.
  339.     */
  340.     #define TARGET_OS_MAC                1
  341.     #define TARGET_OS_WIN32                0
  342.     #define TARGET_OS_UNIX                0
  343.     #define TARGET_CPU_X86              0
  344.     #define TARGET_CPU_MIPS             0
  345.     #define TARGET_CPU_SPARC            0        
  346.     #define TARGET_CPU_ALPHA            0
  347.     #define TARGET_RT_LITTLE_ENDIAN        0
  348.     #define TARGET_RT_BIG_ENDIAN        1
  349.     #if powerc
  350.         #define TARGET_CPU_PPC          1
  351.         #define TARGET_CPU_68K          0
  352.         #define TARGET_RT_MAC_CFM        1
  353.         #define TARGET_RT_MAC_68881        0
  354.     #else
  355.         #define TARGET_CPU_PPC          0
  356.         #define TARGET_CPU_68K          1
  357.         #if defined(__CFM68K)
  358.             #define TARGET_RT_MAC_CFM    1
  359.         #else
  360.             #define TARGET_RT_MAC_CFM    0
  361.         #endif
  362.         #if mc68881
  363.             #define TARGET_RT_MAC_68881    1
  364.         #else
  365.             #define TARGET_RT_MAC_68881    0
  366.         #endif
  367.     #endif
  368.     #define PRAGMA_IMPORT                0
  369.     #define PRAGMA_ONCE                    1
  370.     #define PRAGMA_STRUCT_ALIGN            1
  371.     #define PRAGMA_STRUCT_PACK            0
  372.     #define PRAGMA_STRUCT_PACKPUSH        0
  373.     #define PRAGMA_ENUM_PACK            1
  374.     #define PRAGMA_ENUM_ALWAYSINT        0
  375.     #define PRAGMA_ENUM_OPTIONS            0
  376.     #define FOUR_CHAR_CODE(x)            (x)
  377.     
  378.     #if __useAppleExts__
  379.         #define TYPE_EXTENDED            1
  380.     #else
  381.         #define TYPE_EXTENDED            0
  382.     #endif
  383.     #define TYPE_LONGLONG                0
  384.     #define TYPE_BOOL                    0
  385.     
  386.  
  387.  
  388. #elif defined(THINK_C)
  389.     /*
  390.         THINK C compiler from Symantec, Inc.        << WARNING: Unsupported Compiler >>
  391.     */
  392.     #define TARGET_CPU_PPC              0
  393.     #define TARGET_CPU_68K              1
  394.     #define TARGET_CPU_X86              0
  395.     #define TARGET_CPU_MIPS             0
  396.     #define TARGET_CPU_SPARC            0        
  397.     #define TARGET_CPU_ALPHA            0
  398.     #define TARGET_OS_MAC                1
  399.     #define TARGET_OS_WIN32                0
  400.     #define TARGET_OS_UNIX                0
  401.     #define TARGET_RT_LITTLE_ENDIAN        0
  402.     #define TARGET_RT_BIG_ENDIAN        1
  403.     #define TARGET_RT_MAC_CFM            0
  404.     #if defined(mc68881)
  405.         #define TARGET_RT_MAC_68881        1
  406.     #else
  407.         #define TARGET_RT_MAC_68881        0
  408.     #endif
  409.     #define PRAGMA_IMPORT                0
  410.     #define PRAGMA_STRUCT_ALIGN            0
  411.     #define PRAGMA_ONCE                    1
  412.     #define PRAGMA_STRUCT_PACK            0
  413.     #define PRAGMA_STRUCT_PACKPUSH        0
  414.     #define PRAGMA_ENUM_PACK            1
  415.     #define PRAGMA_ENUM_ALWAYSINT        0
  416.     #define PRAGMA_ENUM_OPTIONS            0
  417.     #define FOUR_CHAR_CODE(x)            (x)
  418.     
  419.     #define TYPE_EXTENDED                1
  420.     #define TYPE_LONGLONG                0
  421.     #define TYPE_BOOL                    0
  422.     
  423.  
  424.  
  425. #elif defined(__PPCC__)
  426.     /*
  427.         PPCC compiler from Apple Computer, Inc.        << WARNING: Unsupported Compiler >>
  428.     */
  429.     #define TARGET_CPU_PPC              1
  430.     #define TARGET_CPU_68K              0
  431.     #define TARGET_CPU_X86              0
  432.     #define TARGET_CPU_MIPS             0
  433.     #define TARGET_CPU_SPARC            0        
  434.     #define TARGET_CPU_ALPHA            0
  435.     #define TARGET_OS_MAC                1
  436.     #define TARGET_OS_WIN32                0
  437.     #define TARGET_OS_UNIX                0
  438.     #define TARGET_RT_LITTLE_ENDIAN        0
  439.     #define TARGET_RT_BIG_ENDIAN        1
  440.     #define TARGET_RT_MAC_CFM            1
  441.     #define TARGET_RT_MAC_68881            0
  442.     #define PRAGMA_IMPORT                0
  443.     #define PRAGMA_STRUCT_ALIGN            1
  444.     #define PRAGMA_ONCE                    0
  445.     #define PRAGMA_STRUCT_PACK            0
  446.     #define PRAGMA_STRUCT_PACKPUSH        0
  447.     #define PRAGMA_ENUM_PACK            0
  448.     #define PRAGMA_ENUM_ALWAYSINT        0
  449.     #define PRAGMA_ENUM_OPTIONS            0
  450.     #define FOUR_CHAR_CODE(x)            (x)
  451.     
  452.     #define TYPE_EXTENDED                0
  453.     #define TYPE_LONGLONG                0
  454.     #define TYPE_BOOL                    0
  455.  
  456.  
  457. #elif defined(applec) && !defined(__SC__)
  458.     /*
  459.         MPW C compiler from Apple Computer, Inc.    << WARNING: Unsupported Compiler >>
  460.     */
  461.     #define TARGET_CPU_PPC              0
  462.     #define TARGET_CPU_68K              1
  463.     #define TARGET_CPU_X86              0
  464.     #define TARGET_CPU_MIPS             0
  465.     #define TARGET_CPU_SPARC            0        
  466.     #define TARGET_CPU_ALPHA            0
  467.     #define TARGET_OS_MAC                1
  468.     #define TARGET_OS_WIN32                0
  469.     #define TARGET_OS_UNIX                0
  470.     #define TARGET_RT_LITTLE_ENDIAN        0
  471.     #define TARGET_RT_BIG_ENDIAN        1
  472.     #define TARGET_RT_MAC_CFM            0
  473.     #if defined(mc68881)
  474.         #define TARGET_RT_MAC_68881        1
  475.     #else
  476.         #define TARGET_RT_MAC_68881        0
  477.     #endif
  478.     #define PRAGMA_IMPORT                0
  479.     #define PRAGMA_STRUCT_ALIGN            0
  480.     #define PRAGMA_ONCE                    0
  481.     #define PRAGMA_STRUCT_PACK            0
  482.     #define PRAGMA_STRUCT_PACKPUSH        0
  483.     #define PRAGMA_ENUM_PACK            0
  484.     #define PRAGMA_ENUM_ALWAYSINT        0
  485.     #define PRAGMA_ENUM_OPTIONS            0
  486.     /* Note: MPW C 3.2 had a bug where MACRO('xx   ') would cause 'xx  ' to be misevaluated */
  487.     #define FOUR_CHAR_CODE                
  488.  
  489.     #define TYPE_EXTENDED                1
  490.     #define TYPE_LONGLONG                0
  491.     #define TYPE_BOOL                    0
  492.  
  493.  
  494.  
  495. #elif defined(__GNUC__) && (defined(__APPLE_CPP__) || defined(__NEXT_CPP__))
  496.     /*
  497.         gcc from Next, Inc., with cpp-precomp (header precompiler)
  498.     */
  499.     #if defined(powerpc) || defined(ppc)
  500.         #define TARGET_CPU_PPC            1
  501.         #define TARGET_CPU_68K            0
  502.         #define TARGET_CPU_X86            0
  503.         #define TARGET_CPU_MIPS            0
  504.         #define TARGET_CPU_SPARC        0   
  505.         #define TARGET_CPU_ALPHA        0
  506.         #define TARGET_RT_MAC_CFM        0
  507.         #define TARGET_RT_MAC_68881        0
  508.         #define TARGET_RT_LITTLE_ENDIAN    0
  509.         #define TARGET_RT_BIG_ENDIAN    1
  510.     #elif defined(m68k)
  511.         #define TARGET_CPU_PPC            0
  512.         #define TARGET_CPU_68K            1
  513.         #define TARGET_CPU_X86            0
  514.         #define TARGET_CPU_MIPS            0
  515.         #define TARGET_CPU_SPARC        0   
  516.         #define TARGET_CPU_ALPHA        0
  517.         #define TARGET_RT_MAC_CFM        0
  518.         #define TARGET_RT_MAC_68881        0
  519.         #define TARGET_RT_LITTLE_ENDIAN 0
  520.         #define TARGET_RT_BIG_ENDIAN    1
  521.     #elif defined(sparc)
  522.         #define TARGET_CPU_PPC            0
  523.         #define TARGET_CPU_68K            0
  524.         #define TARGET_CPU_X86            0
  525.         #define TARGET_CPU_MIPS            0
  526.         #define TARGET_CPU_SPARC        1
  527.         #define TARGET_CPU_ALPHA        0
  528.         #define TARGET_RT_MAC_CFM        0
  529.         #define TARGET_RT_MAC_68881        0
  530.         #define TARGET_RT_LITTLE_ENDIAN    0
  531.         #define TARGET_RT_BIG_ENDIAN    1
  532.     #elif defined(i386) || defined(intel)
  533.         #define TARGET_CPU_PPC            0
  534.         #define TARGET_CPU_68K            0
  535.         #define TARGET_CPU_X86            1
  536.         #define TARGET_CPU_MIPS            0
  537.         #define TARGET_CPU_SPARC        0
  538.         #define TARGET_CPU_ALPHA        0
  539.         #define TARGET_RT_MAC_CFM        0
  540.         #define TARGET_RT_MAC_68881        0
  541.         #define TARGET_RT_LITTLE_ENDIAN    1
  542.         #define TARGET_RT_BIG_ENDIAN    0
  543.     #else
  544.         #error unrecognized NeXT GNU C compiler
  545.     #endif
  546.  
  547.  
  548.     #define TARGET_OS_MAC                0
  549.     #define TARGET_OS_WIN32                0
  550.     #define TARGET_OS_UNIX                1
  551.     #define PRAGMA_IMPORT                0
  552.     #define PRAGMA_STRUCT_ALIGN            1
  553.     #define PRAGMA_ONCE                    0
  554.     #define PRAGMA_STRUCT_PACK            0
  555.     #define PRAGMA_STRUCT_PACKPUSH        0
  556.     #define PRAGMA_ENUM_PACK            0
  557.     #define PRAGMA_ENUM_ALWAYSINT        0
  558.     #define PRAGMA_ENUM_OPTIONS            0
  559.     #define FOUR_CHAR_CODE(x)            (x)
  560.  
  561.     #define TYPE_EXTENDED                0
  562.     #ifdef _LONG_LONG
  563.         #define TYPE_LONGLONG            1
  564.     #else
  565.         #define TYPE_LONGLONG            0
  566.     #endif
  567.     #define TYPE_BOOL                    0
  568.  
  569.  
  570. #elif defined(__GNUC__) && defined(__linux__)
  571.     /*
  572.         gcc (egcs, really) for MkLinux.                << WARNING: Unsupported Compiler >>
  573.     */
  574.     #if #cpu(powerpc)
  575.         #define TARGET_CPU_PPC          1
  576.         #define TARGET_CPU_68K          0
  577.         #define TARGET_CPU_X86          0
  578.         #define TARGET_CPU_MIPS         0
  579.         #define TARGET_CPU_SPARC        0    
  580.         #define TARGET_CPU_ALPHA        0
  581.         #define TARGET_RT_MAC_CFM        1
  582.         #define TARGET_RT_MAC_68881        0
  583.     #elif #cpu(m68k)
  584.         #define TARGET_CPU_PPC          0
  585.         #define TARGET_CPU_68K          1
  586.         #define TARGET_CPU_X86          0
  587.         #define TARGET_CPU_MIPS         0
  588.         #define TARGET_CPU_SPARC        0    
  589.         #define TARGET_CPU_ALPHA        0
  590.         #define TARGET_RT_MAC_CFM        0
  591.         #define TARGET_RT_MAC_68881        0
  592.     #else
  593.         #error unsupported GNU C compiler
  594.     #endif
  595.     
  596.     #if #system(macos)
  597.         #define TARGET_OS_MAC            1
  598.         #define TARGET_OS_WIN32            0
  599.         #define TARGET_OS_UNIX            0
  600.     #elif #system(unix)
  601.         #define TARGET_OS_MAC            0
  602.         #define TARGET_OS_WIN32            0
  603.         #define TARGET_OS_UNIX            1
  604.     #else
  605.         #error unsupported GNU C compiler
  606.     #endif
  607.  
  608.  
  609.     
  610.     #define TARGET_RT_LITTLE_ENDIAN        0
  611.     #define TARGET_RT_BIG_ENDIAN        1
  612.     #define PRAGMA_IMPORT                0
  613.     #define PRAGMA_STRUCT_ALIGN            0
  614.     #define PRAGMA_ONCE                    0
  615.     #define PRAGMA_STRUCT_PACK            1
  616.     #define PRAGMA_STRUCT_PACKPUSH        0
  617.     #define PRAGMA_ENUM_PACK            0
  618.     #define PRAGMA_ENUM_ALWAYSINT        0
  619.     #define PRAGMA_ENUM_OPTIONS            0
  620.     #define FOUR_CHAR_CODE(x)            (x)
  621.  
  622.     #define TYPE_EXTENDED                0
  623.     #ifdef _LONG_LONG
  624.         #define TYPE_LONGLONG            1
  625.     #else
  626.         #define TYPE_LONGLONG            0
  627.     #endif
  628.     #define TYPE_BOOL                    0
  629.  
  630.  
  631. #elif defined(__GNUC__)
  632.     /*
  633.         gC for MPW from Free Software Foundation, Inc.
  634.     */
  635.     #if #cpu(powerpc)
  636.         #define TARGET_CPU_PPC          1
  637.         #define TARGET_CPU_68K          0
  638.         #define TARGET_CPU_X86          0
  639.         #define TARGET_CPU_MIPS         0
  640.         #define TARGET_CPU_SPARC        0    
  641.         #define TARGET_CPU_ALPHA        0
  642.         #define TARGET_RT_MAC_CFM        1
  643.         #define TARGET_RT_MAC_68881        0
  644.     #elif #cpu(m68k)
  645.         #define TARGET_CPU_PPC          0
  646.         #define TARGET_CPU_68K          1
  647.         #define TARGET_CPU_X86          0
  648.         #define TARGET_CPU_MIPS         0
  649.         #define TARGET_CPU_SPARC        0    
  650.         #define TARGET_CPU_ALPHA        0
  651.         #define TARGET_RT_MAC_CFM        0
  652.         #define TARGET_RT_MAC_68881        0
  653.     #else
  654.         #error unsupported GNU C compiler
  655.     #endif
  656.     
  657.     #if #system(macos)
  658.         #define TARGET_OS_MAC            1
  659.         #define TARGET_OS_WIN32            0
  660.         #define TARGET_OS_UNIX            0
  661.     #elif #system(unix)
  662.         #define TARGET_OS_MAC            0
  663.         #define TARGET_OS_WIN32            0
  664.         #define TARGET_OS_UNIX            1
  665.     #else
  666.         #error unsupported GNU C compiler
  667.     #endif
  668.     
  669.     #define TARGET_RT_LITTLE_ENDIAN        0
  670.     #define TARGET_RT_BIG_ENDIAN        1
  671.     #define PRAGMA_IMPORT                0
  672.     #define PRAGMA_STRUCT_ALIGN            1
  673.     #define PRAGMA_ONCE                    0
  674.     #define PRAGMA_STRUCT_PACK            0
  675.     #define PRAGMA_STRUCT_PACKPUSH        0
  676.     #define PRAGMA_ENUM_PACK            0
  677.     #define PRAGMA_ENUM_ALWAYSINT        0
  678.     #define PRAGMA_ENUM_OPTIONS            0
  679.     #define FOUR_CHAR_CODE(x)            (x)
  680.  
  681.     #define TYPE_EXTENDED                0
  682.     #ifdef _LONG_LONG
  683.         #define TYPE_LONGLONG            1
  684.     #else
  685.         #define TYPE_LONGLONG            0
  686.     #endif
  687.     #define TYPE_BOOL                    0
  688.  
  689.  
  690.  
  691. #elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__)
  692.     /*
  693.         xlc and xlC on RS/6000 from IBM, Inc.
  694.     */
  695.     #define TARGET_CPU_PPC              1
  696.     #define TARGET_CPU_68K              0
  697.     #define TARGET_CPU_X86              0
  698.     #define TARGET_CPU_MIPS             0
  699.     #define TARGET_CPU_SPARC            0        
  700.     #define TARGET_CPU_ALPHA            0
  701.     #if defined(_AIX)
  702.         #define TARGET_OS_MAC            0
  703.         #define TARGET_OS_UNIX            1
  704.     #else
  705.         #define TARGET_OS_MAC            1
  706.         #define TARGET_OS_UNIX            0
  707.     #endif
  708.     #define TARGET_OS_WIN32                0
  709.     #define TARGET_RT_LITTLE_ENDIAN        0
  710.     #define TARGET_RT_BIG_ENDIAN        1
  711.     #define TARGET_RT_MAC_CFM            1
  712.     #define TARGET_RT_MAC_68881            0
  713.     #define PRAGMA_IMPORT                0
  714.     #define PRAGMA_STRUCT_ALIGN            1
  715.     #define PRAGMA_ONCE                    0
  716.     #define PRAGMA_STRUCT_PACK            0
  717.     #define PRAGMA_STRUCT_PACKPUSH        0
  718.     #define PRAGMA_ENUM_PACK            0
  719.     #define PRAGMA_ENUM_ALWAYSINT        0
  720.     #define PRAGMA_ENUM_OPTIONS            1
  721.     #define FOUR_CHAR_CODE(x)            (x)
  722.  
  723.     #define TYPE_EXTENDED                0
  724.     #ifdef _LONG_LONG
  725.         #define TYPE_LONGLONG            1
  726.     #else
  727.         #define TYPE_LONGLONG            0
  728.     #endif
  729.     #define TYPE_BOOL                    0
  730.  
  731.  
  732. #elif defined(_MSC_VER) && !defined(__MWERKS__) 
  733.     /*
  734.         Visual C++ from Microsoft, Inc.
  735.     */
  736.     #if defined(_M_M68K)    /* Visual C++ with Macintosh 68K target */
  737.         #define TARGET_CPU_PPC              0
  738.         #define TARGET_CPU_68K              1
  739.         #define TARGET_CPU_X86              0
  740.         #define TARGET_CPU_MIPS             0
  741.         #define TARGET_CPU_SPARC            0
  742.         #define TARGET_CPU_ALPHA            0
  743.         #define TARGET_OS_MAC                1
  744.         #define TARGET_OS_WIN32                0
  745.         #define TARGET_OS_UNIX                0
  746.         #define TARGET_RT_LITTLE_ENDIAN        0
  747.         #define TARGET_RT_BIG_ENDIAN        1
  748.         #define TARGET_RT_MAC_CFM            0
  749.         #define TARGET_RT_MAC_68881            0
  750.         #define PRAGMA_IMPORT                0
  751.         #define PRAGMA_STRUCT_ALIGN            1
  752.         #define PRAGMA_ONCE                     0
  753.         #define PRAGMA_STRUCT_PACK            1
  754.         #define PRAGMA_STRUCT_PACKPUSH        1
  755.         #define PRAGMA_ENUM_PACK            0
  756.         #define PRAGMA_ENUM_ALWAYSINT        0
  757.         #define PRAGMA_ENUM_OPTIONS            0
  758.         #define FOUR_CHAR_CODE(x)            (x)
  759.         #define TYPE_EXTENDED                0
  760.         #define TYPE_LONGLONG                0
  761.         #define TYPE_BOOL                    0
  762.     #elif defined(_M_MPPC)    /* Visual C++ with Macintosh PowerPC target */
  763.         #define TARGET_CPU_PPC              1
  764.         #define TARGET_CPU_68K              0
  765.         #define TARGET_CPU_X86              0
  766.         #define TARGET_CPU_MIPS             0
  767.         #define TARGET_CPU_SPARC            0
  768.         #define TARGET_CPU_ALPHA            0
  769.         #define TARGET_OS_MAC                1
  770.         #define TARGET_OS_WIN32                0
  771.         #define TARGET_OS_UNIX                0
  772.         #define TARGET_RT_LITTLE_ENDIAN        0
  773.         #define TARGET_RT_BIG_ENDIAN        1
  774.         #define TARGET_RT_MAC_CFM            1
  775.         #define TARGET_RT_MAC_68881            0
  776.         #define PRAGMA_IMPORT                0
  777.         #define PRAGMA_STRUCT_ALIGN            1
  778.         #define PRAGMA_ONCE                     0
  779.         #define PRAGMA_STRUCT_PACK            1
  780.         #define PRAGMA_STRUCT_PACKPUSH        1
  781.         #define PRAGMA_ENUM_PACK            0
  782.         #define PRAGMA_ENUM_ALWAYSINT        0
  783.         #define PRAGMA_ENUM_OPTIONS            0
  784.         #define FOUR_CHAR_CODE(x)            (x)
  785.         #define TYPE_EXTENDED                0
  786.         #define TYPE_LONGLONG                0
  787.         #define TYPE_BOOL                    0
  788.  
  789.     #elif defined(_M_IX86)    /* Visual C++ with Intel x86 target */
  790.         #define TARGET_CPU_PPC              0
  791.         #define TARGET_CPU_68K              0
  792.         #define TARGET_CPU_X86              1
  793.         #define TARGET_CPU_MIPS             0
  794.         #define TARGET_CPU_SPARC            0
  795.         #define TARGET_CPU_ALPHA            0
  796.         #define TARGET_OS_MAC                0
  797.         #define TARGET_OS_WIN32                1
  798.         #define TARGET_OS_UNIX                0
  799.         #define TARGET_RT_LITTLE_ENDIAN        1
  800.         #define TARGET_RT_BIG_ENDIAN        0
  801.         #define TARGET_RT_MAC_CFM            0
  802.         #define TARGET_RT_MAC_68881            0
  803.         #define PRAGMA_IMPORT                0
  804.         #define PRAGMA_STRUCT_ALIGN            0
  805.         #define PRAGMA_ONCE                     0
  806.         #define PRAGMA_STRUCT_PACK            1
  807.         #define PRAGMA_STRUCT_PACKPUSH        1
  808.         #define PRAGMA_ENUM_PACK            0
  809.         #define PRAGMA_ENUM_ALWAYSINT        0
  810.         #define PRAGMA_ENUM_OPTIONS            0
  811.         #define FOUR_CHAR_CODE(x)            (x) 
  812.         #define TYPE_EXTENDED                0
  813.         #define TYPE_LONGLONG                1
  814.         #define LONGLONG_TYPENAME            __int64
  815.         #define LONGLONG_SIGNED_MAX            (9223372036854775807i64)
  816.         #define LONGLONG_SIGNED_MIN            (-9223372036854775807i64 - 1)
  817.         #define LONGLONG_UNSIGNED_MAX        (0xffffffffffffffffui64)
  818.         #if defined(__cplusplus) && (_MSC_VER >= 1100)
  819.             #define TYPE_BOOL                1
  820.         #else
  821.             #define TYPE_BOOL                0
  822.         #endif
  823.  
  824.         #elif defined(_M_ALPHA)        /* Visual C++ with Dec Alpha target */
  825.         #define TARGET_CPU_PPC              0
  826.         #define TARGET_CPU_68K              0
  827.         #define TARGET_CPU_X86              0
  828.         #define TARGET_CPU_MIPS             0
  829.         #define TARGET_CPU_SPARC            0
  830.         #define TARGET_CPU_ALPHA            1
  831.         #define TARGET_OS_MAC                0
  832.         #define TARGET_OS_WIN32                1
  833.         #define TARGET_OS_UNIX                0
  834.         #define TARGET_RT_LITTLE_ENDIAN        1
  835.         #define TARGET_RT_BIG_ENDIAN        0
  836.         #define TARGET_RT_MAC_CFM            0
  837.         #define TARGET_RT_MAC_68881            0
  838.         #define PRAGMA_IMPORT                0
  839.         #define PRAGMA_STRUCT_ALIGN            0
  840.         #define PRAGMA_ONCE                     0
  841.         #define PRAGMA_STRUCT_PACK            1
  842.         #define PRAGMA_STRUCT_PACKPUSH        1
  843.         #define PRAGMA_ENUM_PACK            0
  844.         #define PRAGMA_ENUM_ALWAYSINT        0
  845.         #define PRAGMA_ENUM_OPTIONS            0
  846.         #define FOUR_CHAR_CODE(x)        (((DWORD) ((x) & 0x000000FF)) << 24) \
  847.                                     | (((DWORD) ((x) & 0x0000FF00)) << 8) \
  848.                                     | (((DWORD) ((x) & 0x00FF0000)) >> 8) \
  849.                                     | (((DWORD) ((x) & 0xFF000000)) >> 24)
  850.         #define TYPE_EXTENDED                0
  851.         #define TYPE_LONGLONG                0
  852.         #define TYPE_BOOL                    0
  853.  
  854.     #elif defined(_M_PPC)    /* Visual C++ for Windows NT on PowerPC target */
  855.         #define TARGET_CPU_PPC              1
  856.         #define TARGET_CPU_68K              0
  857.         #define TARGET_CPU_X86              0
  858.         #define TARGET_CPU_MIPS             0
  859.         #define TARGET_CPU_SPARC            0
  860.         #define TARGET_CPU_ALPHA            0
  861.         #define TARGET_OS_MAC                0
  862.         #define TARGET_OS_WIN32                1
  863.         #define TARGET_OS_UNIX                0
  864.         #define TARGET_RT_LITTLE_ENDIAN        1
  865.         #define TARGET_RT_BIG_ENDIAN        0
  866.         #define TARGET_RT_MAC_CFM            0
  867.         #define TARGET_RT_MAC_68881            0
  868.         #define PRAGMA_IMPORT                0
  869.         #define PRAGMA_STRUCT_ALIGN            0
  870.         #define PRAGMA_ONCE                     0
  871.         #define PRAGMA_STRUCT_PACK            1
  872.         #define PRAGMA_STRUCT_PACKPUSH        1
  873.         #define PRAGMA_ENUM_PACK            0
  874.         #define PRAGMA_ENUM_ALWAYSINT        0
  875.         #define PRAGMA_ENUM_OPTIONS            0
  876.         #define FOUR_CHAR_CODE(x)        (((DWORD) ((x) & 0x000000FF)) << 24) \
  877.                                     | (((DWORD) ((x) & 0x0000FF00)) << 8) \
  878.                                     | (((DWORD) ((x) & 0x00FF0000)) >> 8) \
  879.                                     | (((DWORD) ((x) & 0xFF000000)) >> 24)
  880.         #define TYPE_EXTENDED                0
  881.         #define TYPE_LONGLONG                0
  882.         #define TYPE_BOOL                    0
  883.  
  884.         #elif defined(_M_MRX000)    /* Visual C++ for Windows NT on MIPS target */
  885.         #define TARGET_CPU_PPC              0
  886.         #define TARGET_CPU_68K              0
  887.         #define TARGET_CPU_X86              0
  888.         #define TARGET_CPU_MIPS             1
  889.         #define TARGET_CPU_SPARC            0
  890.         #define TARGET_CPU_ALPHA            0
  891.         #define TARGET_OS_MAC                0
  892.         #define TARGET_OS_WIN32                1
  893.         #define TARGET_OS_UNIX                0
  894.         #define TARGET_RT_LITTLE_ENDIAN        1
  895.         #define TARGET_RT_BIG_ENDIAN        0
  896.         #define TARGET_RT_MAC_CFM            0
  897.         #define TARGET_RT_MAC_68881            0
  898.         #define PRAGMA_IMPORT                0
  899.         #define PRAGMA_STRUCT_ALIGN            0
  900.         #define PRAGMA_ONCE                     0
  901.         #define PRAGMA_STRUCT_PACK            1
  902.         #define PRAGMA_STRUCT_PACKPUSH        1
  903.         #define PRAGMA_ENUM_PACK            0
  904.         #define PRAGMA_ENUM_ALWAYSINT        0
  905.         #define PRAGMA_ENUM_OPTIONS            0
  906.         #define FOUR_CHAR_CODE(x)        (((DWORD) ((x) & 0x000000FF)) << 24) \
  907.                                     | (((DWORD) ((x) & 0x0000FF00)) << 8) \
  908.                                     | (((DWORD) ((x) & 0x00FF0000)) >> 8) \
  909.                                     | (((DWORD) ((x) & 0xFF000000)) >> 24)
  910.         #define TYPE_EXTENDED                0
  911.         #define TYPE_LONGLONG                0
  912.         #define TYPE_BOOL                    0
  913.     #endif
  914.  
  915.  
  916. #elif defined(__MOTO__)
  917.     /*
  918.         mcc from Motorola, Inc. 
  919.     */
  920.     #define TARGET_CPU_PPC              1
  921.     #define TARGET_CPU_68K              0
  922.     #define TARGET_CPU_X86              0
  923.     #define TARGET_CPU_MIPS             0
  924.     #define TARGET_CPU_SPARC            0        
  925.     #define TARGET_CPU_ALPHA            0
  926.     #define TARGET_OS_MAC                1
  927.     #define TARGET_OS_WIN32                0
  928.     #define TARGET_OS_UNIX                0
  929.     #define TARGET_RT_LITTLE_ENDIAN        0
  930.     #define TARGET_RT_BIG_ENDIAN        1
  931.     #define TARGET_RT_MAC_CFM            1
  932.     #define TARGET_RT_MAC_68881            0
  933.     #define PRAGMA_IMPORT                0            /* how is this detected ?? */
  934.     #define PRAGMA_STRUCT_ALIGN            1
  935.     #if __MOTO__ >= 40702                             /* MCC version 4.7.2 */
  936.       #define PRAGMA_ONCE                 1
  937.     #else
  938.       #define PRAGMA_ONCE                 0
  939.     #endif
  940.     #define PRAGMA_STRUCT_PACK            0
  941.     #define PRAGMA_STRUCT_PACKPUSH        0
  942.     #define PRAGMA_ENUM_PACK            0
  943.     #define PRAGMA_ENUM_ALWAYSINT        0
  944.     #define PRAGMA_ENUM_OPTIONS            0
  945.     #define FOUR_CHAR_CODE(x)            (x)
  946.     #define TYPE_LONGLONG                0            /* how is this detected ?? */
  947.     #ifdef _BOOL
  948.         #define TYPE_BOOL                1            
  949.     #else
  950.         #define TYPE_BOOL                0            
  951.     #endif
  952.     #define TYPE_EXTENDED                0
  953.  
  954.  
  955.  
  956. #elif defined(_MIPS_ISA)
  957.     /*
  958.         MIPSpro compiler from Silicon Graphics Inc.
  959.     */
  960.     #define TARGET_CPU_PPC              0
  961.     #define TARGET_CPU_68K              0
  962.     #define TARGET_CPU_X86              0
  963.     #define TARGET_CPU_MIPS             1
  964.     #define TARGET_CPU_SPARC            0        
  965.     #define TARGET_CPU_ALPHA            0
  966.     #define TARGET_OS_MAC                0
  967.     #define TARGET_OS_WIN32                0
  968.     #define TARGET_OS_UNIX                1
  969.     #define TARGET_RT_LITTLE_ENDIAN        0
  970.     #define TARGET_RT_BIG_ENDIAN        1
  971.     #define TARGET_RT_MAC_CFM            0
  972.     #define TARGET_RT_MAC_68881            0
  973.     #define PRAGMA_IMPORT                0
  974.     #define PRAGMA_STRUCT_ALIGN            0
  975.     #define PRAGMA_ONCE                    0
  976.     #define PRAGMA_STRUCT_PACK            1
  977.     #define PRAGMA_STRUCT_PACKPUSH        0
  978.     #define PRAGMA_ENUM_PACK            0
  979.     #define PRAGMA_ENUM_ALWAYSINT        0
  980.     #define PRAGMA_ENUM_OPTIONS            0
  981.     #define FOUR_CHAR_CODE(x)            (x)
  982.     #define TYPE_EXTENDED                0
  983.     #define TYPE_LONGLONG                0
  984.     #define TYPE_BOOL                    0
  985.  
  986.  
  987. #elif defined(__sparc)
  988.     /*
  989.         SPARCompiler compiler from Sun Microsystems Inc.
  990.     */
  991.     #define TARGET_CPU_PPC              0
  992.     #define TARGET_CPU_68K              0
  993.     #define TARGET_CPU_X86              0
  994.     #define TARGET_CPU_MIPS             0
  995.     #define TARGET_CPU_SPARC            1        
  996.     #define TARGET_CPU_ALPHA            0
  997.     #define TARGET_OS_MAC                0
  998.     #define TARGET_OS_WIN32                0
  999.     #define TARGET_OS_UNIX                1
  1000.     #define TARGET_RT_LITTLE_ENDIAN        0
  1001.     #define TARGET_RT_BIG_ENDIAN        1
  1002.     #define TARGET_RT_MAC_CFM            0
  1003.     #define TARGET_RT_MAC_68881            0
  1004.     #define PRAGMA_IMPORT                0
  1005.     #define PRAGMA_STRUCT_ALIGN            0
  1006.     #define PRAGMA_ONCE                    0
  1007.     #define PRAGMA_STRUCT_PACK            1
  1008.     #define PRAGMA_STRUCT_PACKPUSH        0
  1009.     #define PRAGMA_ENUM_PACK            0
  1010.     #define PRAGMA_ENUM_ALWAYSINT        0
  1011.     #define PRAGMA_ENUM_OPTIONS            0
  1012.     #define FOUR_CHAR_CODE(x)        (((unsigned long) ((x) & 0x000000FF)) << 24) \
  1013.                                     | (((unsigned long) ((x) & 0x0000FF00)) << 8) \
  1014.                                     | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \
  1015.                                     | (((unsigned long) ((x) & 0xFF000000)) >> 24)
  1016.     #define TYPE_EXTENDED                0
  1017.     #define TYPE_LONGLONG                0
  1018.     #define TYPE_BOOL                    0
  1019.  
  1020.  
  1021. #else
  1022.     /*
  1023.         Unknown compiler, perhaps set up from the command line (e.g. -d TARGET_CPU_MIPS , etc.)
  1024.     */
  1025.     #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
  1026.         #define TARGET_CPU_68K   0
  1027.         #define TARGET_CPU_X86   0
  1028.         #define TARGET_CPU_MIPS  0
  1029.         #define TARGET_CPU_SPARC 0
  1030.         #define TARGET_CPU_ALPHA 0
  1031.     #elif defined(TARGET_CPU_68K) && TARGET_CPU_68K
  1032.         #define TARGET_CPU_PPC   0
  1033.         #define TARGET_CPU_X86   0
  1034.         #define TARGET_CPU_MIPS  0
  1035.         #define TARGET_CPU_SPARC 0
  1036.         #define TARGET_CPU_ALPHA 0
  1037.     #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86
  1038.         #define TARGET_CPU_PPC   0
  1039.         #define TARGET_CPU_68K   0
  1040.         #define TARGET_CPU_MIPS  0
  1041.         #define TARGET_CPU_SPARC 0
  1042.         #define TARGET_CPU_ALPHA 0
  1043.     #elif defined(TARGET_CPU_MIPS) && TARGET_CPU_MIPS
  1044.         #define TARGET_CPU_PPC   0
  1045.         #define TARGET_CPU_68K   0
  1046.         #define TARGET_CPU_X86   0
  1047.         #define TARGET_CPU_SPARC 0
  1048.         #define TARGET_CPU_ALPHA 0
  1049.     #elif defined(TARGET_CPU_SPARC) && TARGET_CPU_SPARC
  1050.         #define TARGET_CPU_PPC   0
  1051.         #define TARGET_CPU_68K   0
  1052.         #define TARGET_CPU_X86   0
  1053.         #define TARGET_CPU_MIPS  0
  1054.         #define TARGET_CPU_ALPHA 0
  1055.     #elif defined(TARGET_CPU_ALPHA) && TARGET_CPU_ALPHA
  1056.         #define TARGET_CPU_PPC   0
  1057.         #define TARGET_CPU_68K   0
  1058.         #define TARGET_CPU_X86   0
  1059.         #define TARGET_CPU_MIPS  0
  1060.         #define TARGET_CPU_SPARC 0
  1061.  
  1062.         
  1063.     #else
  1064.         /*
  1065.             NOTE:    If your compiler errors out here then support for your compiler 
  1066.                     has not yet been added to ConditionalMacros.h.  
  1067.                     
  1068.                     ConditionalMacros.h is designed to be plug-and-play.  It auto detects
  1069.                     which compiler is being run and configures the TARGET_ conditionals
  1070.                     appropriately.  
  1071.                     
  1072.                     The short term work around is to set the TARGET_CPU_ and TARGET_OS_
  1073.                     on the command line to the compiler (e.g. d TARGET_CPU_MIPS -d TARGET_OS_UNIX)
  1074.                     
  1075.                     The long term solution is to add a new case to this file which
  1076.                     auto detects your compiler and sets up the TARGET_ conditionals.
  1077.                     If you do this, send the changes you made to devsupport@apple.com
  1078.                     to get it integrated into the next release of ConditionalMacros.h.
  1079.         */
  1080.         #error ConditionalMacros.h: unknown compiler (see comment above)
  1081.         #define TARGET_CPU_PPC   0
  1082.         #define TARGET_CPU_68K   0
  1083.         #define TARGET_CPU_X86   0
  1084.         #define TARGET_CPU_MIPS  0
  1085.         #define TARGET_CPU_SPARC 0
  1086.         #define TARGET_CPU_ALPHA 0
  1087.     #endif
  1088.     
  1089.  
  1090.  
  1091.     #if defined(TARGET_OS_MAC) && TARGET_OS_MAC
  1092.         #define TARGET_OS_WIN32  0
  1093.         #define TARGET_OS_UNIX   0
  1094.     #elif defined(TARGET_OS_WIN32) && TARGET_OS_WIN32
  1095.         #define TARGET_OS_MAC    0
  1096.         #define TARGET_OS_UNIX   0
  1097.     #elif defined(TARGET_OS_UNIX) && TARGET_OS_UNIX
  1098.         #define TARGET_OS_MAC    0
  1099.         #define TARGET_OS_WIN32  0
  1100.     #elif TARGET_CPU_PPC || TARGET_CPU_68K
  1101.         #define TARGET_OS_MAC    1
  1102.         #define TARGET_OS_WIN32  0
  1103.         #define TARGET_OS_UNIX   0
  1104.     #else
  1105.         #error ConditionalMacros.h: unknown target OS (see comment above)
  1106.     #endif
  1107.  
  1108.     #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
  1109.         #if TARGET_OS_MAC
  1110.             #define TARGET_RT_LITTLE_ENDIAN        0
  1111.             #define TARGET_RT_BIG_ENDIAN        1
  1112.         #elif TARGET_OS_WIN32
  1113.             #define TARGET_RT_LITTLE_ENDIAN        1
  1114.             #define TARGET_RT_BIG_ENDIAN        0
  1115.         #endif
  1116.     #endif
  1117.         
  1118.     #if defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
  1119.         #define TARGET_RT_LITTLE_ENDIAN        !TARGET_RT_BIG_ENDIAN
  1120.     #elif !defined(TARGET_RT_BIG_ENDIAN) && defined(TARGET_RT_LITTLE_ENDIAN)
  1121.         #define TARGET_RT_BIG_ENDIAN        !TARGET_RT_LITTLE_ENDIAN
  1122.     #endif
  1123.     
  1124.     #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
  1125.         #error unknown endianess of target processor
  1126.     #endif
  1127.  
  1128.     #ifndef TARGET_RT_MAC_CFM
  1129.     #define TARGET_RT_MAC_CFM            TARGET_CPU_PPC
  1130.     #endif
  1131.     #ifndef TARGET_RT_MAC_68881
  1132.     #define TARGET_RT_MAC_68881            0
  1133.     #endif
  1134.  
  1135.         
  1136.     #ifndef PRAGMA_IMPORT
  1137.     #define PRAGMA_IMPORT                0
  1138.     #endif
  1139.     #ifndef PRAGMA_STRUCT_ALIGN
  1140.     #define PRAGMA_STRUCT_ALIGN            0
  1141.     #endif
  1142.     #ifndef PRAGMA_ONCE
  1143.     #define PRAGMA_ONCE                    0
  1144.     #endif
  1145.     #ifndef PRAGMA_STRUCT_PACK
  1146.     #define PRAGMA_STRUCT_PACK            0
  1147.     #endif
  1148.     #ifndef PRAGMA_STRUCT_PACKPUSH
  1149.     #define PRAGMA_STRUCT_PACKPUSH        0
  1150.     #endif
  1151.     #ifndef PRAGMA_ENUM_PACK
  1152.     #define PRAGMA_ENUM_PACK            0
  1153.     #endif
  1154.     #ifndef PRAGMA_ENUM_ALWAYSINT
  1155.     #define PRAGMA_ENUM_ALWAYSINT        0
  1156.     #endif
  1157.     #ifndef PRAGMA_ENUM_OPTIONS
  1158.     #define PRAGMA_ENUM_OPTIONS            0
  1159.     #endif
  1160.     #ifndef FOUR_CHAR_CODE
  1161.     #define FOUR_CHAR_CODE(x)            (x)
  1162.     #endif
  1163.  
  1164.     #ifndef TYPE_EXTENDED
  1165.     #define TYPE_EXTENDED                0
  1166.     #endif
  1167.     #ifndef TYPE_LONGLONG
  1168.     #define TYPE_LONGLONG                0
  1169.     #endif
  1170.     #ifndef TYPE_BOOL
  1171.     #define TYPE_BOOL                    0
  1172.     #endif
  1173. #endif
  1174.  
  1175.  
  1176.  
  1177.  
  1178. /****************************************************************************************************
  1179.  
  1180.     EXTERN_API≈    
  1181.     These conditionals are used to specify the calling convention of a function.
  1182.     Mac classic 68K and Win32 each have two possible calling conventions:
  1183.  
  1184.         EXTERN_API                - Classic 68K pascal, Win32 __cdecl
  1185.         EXTERN_API_C            - Classic 68K C,      Win32 __cdecl
  1186.         EXTERN_API_STDCALL        - Classic 68K pascal, Win32 __stdcall
  1187.         EXTERN_API_C_STDCALL    - Classic 68K C,      Win32 __stdcall
  1188.  
  1189.  
  1190.     CALLBACK_API≈    
  1191.     These conditionals are used to specify the calling convention of a function pointer.
  1192.     Mac classic 68K and Win32 each have two possible calling conventions:
  1193.  
  1194.         CALLBACK_API            - Classic 68K pascal, Win32 __stdcall
  1195.         CALLBACK_API_C            - Classic 68K C,      Win32 __stdcall
  1196.         CALLBACK_API_STDCALL    - Classic 68K pascal, Win32 __cdecl
  1197.         CALLBACK_API_C_STDCALL    - Classic 68K C,      Win32 __cdecl
  1198.  
  1199. ****************************************************************************************************/
  1200. #if TARGET_OS_MAC
  1201.     /*
  1202.         Mac OS
  1203.     */
  1204.     #define EXTERN_API(_type)                        extern pascal _type        /* Note: all Mac OS compilers must be able to handle the pascal keyword */
  1205.     #define EXTERN_API_C(_type)                        extern _type
  1206.     #define EXTERN_API_STDCALL(_type)                extern pascal _type
  1207.     #define EXTERN_API_C_STDCALL(_type)                extern _type
  1208.     #define CALLBACK_API(_type, _name)                pascal _type (*_name)
  1209.     #define CALLBACK_API_C(_type, _name)            _type (*_name)
  1210.     #define CALLBACK_API_STDCALL(_type, _name)        pascal _type (*_name)
  1211.     #define CALLBACK_API_C_STDCALL(_type, _name)    _type (*_name)
  1212. #elif TARGET_OS_WIN32
  1213.     /*
  1214.         Win32 
  1215.     */
  1216.     #define EXTERN_API(_type)                        _type __cdecl
  1217.     #define EXTERN_API_C(_type)                        _type __cdecl
  1218.     #define EXTERN_API_STDCALL(_type)                _type __stdcall
  1219.     #define EXTERN_API_C_STDCALL(_type)                _type __stdcall
  1220.     #define CALLBACK_API(_type, _name)                _type (__cdecl * _name)
  1221.     #define CALLBACK_API_C(_type, _name)            _type (__cdecl * _name)
  1222.     #define CALLBACK_API_STDCALL(_type, _name)        _type (__stdcall * _name)
  1223.     #define CALLBACK_API_C_STDCALL(_type, _name)    _type (__stdcall * _name)
  1224.     /* MacOS 68K compilers need pascal keyword on function implementation, but Win32 cannot have it */
  1225.     #undef pascal
  1226.     #define pascal
  1227. #else
  1228.     /*
  1229.         Unix or anything else
  1230.     */
  1231.     #define EXTERN_API(_type)                        extern _type
  1232.     #define EXTERN_API_C(_type)                        extern _type
  1233.     #define EXTERN_API_STDCALL(_type)                extern _type
  1234.     #define EXTERN_API_C_STDCALL(_type)                extern _type
  1235.     #define CALLBACK_API(_type, _name)                _type (*_name)
  1236.     #define CALLBACK_API_C(_type, _name)            _type (*_name)
  1237.     #define CALLBACK_API_STDCALL(_type, _name)        _type (*_name)
  1238.     #define CALLBACK_API_C_STDCALL(_type, _name)    _type (*_name)    
  1239.     /* MacOS 68K compilers need pascal keyword on function implementation, but unix cannot have it */
  1240.     #undef pascal
  1241.     #define pascal    
  1242. #endif
  1243.  
  1244. /****************************************************************************************************
  1245.     Backward compatibility for clients expecting 2.x version on ConditionalMacros.h
  1246.  
  1247.     GENERATINGPOWERPC        - Compiler is generating PowerPC instructions
  1248.     GENERATING68K            - Compiler is generating 68k family instructions
  1249.     GENERATING68881            - Compiler is generating mc68881 floating point instructions
  1250.     GENERATINGCFM            - Code being generated assumes CFM calling conventions
  1251.     CFMSYSTEMCALLS            - No A-traps.  Systems calls are made using CFM and UPP's
  1252.     PRAGMA_ALIGN_SUPPORTED    - Compiler supports: #pragma options align=mac68k/power/reset
  1253.     PRAGMA_IMPORT_SUPPORTED    - Compiler supports: #pragma import on/off/reset
  1254.  
  1255. ****************************************************************************************************/
  1256. #if TARGET_OS_MAC
  1257. #define GENERATINGPOWERPC TARGET_CPU_PPC
  1258. #else
  1259. #define GENERATINGPOWERPC 0
  1260. #endif  /* TARGET_OS_MAC */
  1261.  
  1262. #define GENERATING68K TARGET_CPU_68K
  1263. #define GENERATING68881 TARGET_RT_MAC_68881
  1264. #define GENERATINGCFM TARGET_RT_MAC_CFM
  1265. #define CFMSYSTEMCALLS TARGET_RT_MAC_CFM
  1266. #define PRAGMA_ALIGN_SUPPORTED    PRAGMA_STRUCT_ALIGN
  1267. #define PRAGMA_IMPORT_SUPPORTED PRAGMA_IMPORT
  1268. /*
  1269.     NOTE: The FOR_≈ conditionals were developed to produce integerated
  1270.           interface files for System 7 and Copland.  Now that Copland
  1271.           is canceled, all FOR_ conditionals have been removed from
  1272.           the interface files.  But, just in case you someone got an 
  1273.           interface file that uses them, the following sets the FOR_≈
  1274.           conditionals to a consistent, usable state.
  1275.  
  1276.     #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES        0
  1277.     #ifndef FOR_PTR_BASED_AE
  1278.         #define FOR_PTR_BASED_AE                    0
  1279.     #endif
  1280.     #define FOR_SYSTEM7_ONLY                        1
  1281.     #define FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED        1
  1282.     #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE        1
  1283.     #define FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE        1
  1284.     #define FOR_SYSTEM8_COOPERATIVE                    0
  1285.     #define FOR_SYSTEM8_PREEMPTIVE                    0
  1286. */
  1287. #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES     ..FOR_OPAQUE_SYSTEM_DATA_STRUCTURES_is_an_obsolete_Coplandism..
  1288. #define FOR_PTR_BASED_AE                     ..FOR_PTR_BASED_AE_is_an_obsolete_Coplandism..
  1289. #define FOR_SYSTEM7_ONLY                     ..FOR_SYSTEM7_ONLY_is_an_obsolete_Coplandism..
  1290. #define FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED     ..FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED_is_an_obsolete_Coplandism..
  1291. #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE ..FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE_is_an_obsolete_Coplandism..
  1292. #define FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE    ..FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE_is_an_obsolete_Coplandism..
  1293. #define FOR_SYSTEM8_COOPERATIVE             ..FOR_SYSTEM8_COOPERATIVE_is_an_obsolete_Coplandism..
  1294. #define FOR_SYSTEM8_PREEMPTIVE                 ..FOR_SYSTEM8_PREEMPTIVE_is_an_obsolete_Coplandism..
  1295.  
  1296.  
  1297. /****************************************************************************************************
  1298.  
  1299.     OLDROUTINENAMES            - "Old" names for Macintosh system calls are allowed in source code.
  1300.                               (e.g. DisposPtr instead of DisposePtr). The names of system routine
  1301.                               are now more sensitive to change because CFM binds by name.  In the 
  1302.                               past, system routine names were compiled out to just an A-Trap.  
  1303.                               Macros have been added that each map an old name to its new name.  
  1304.                               This allows old routine names to be used in existing source files,
  1305.                               but the macros only work if OLDROUTINENAMES is true.  This support
  1306.                               will be removed in the near future.  Thus, all source code should 
  1307.                               be changed to use the new names! You can set OLDROUTINENAMES to false
  1308.                               to see if your code has any old names left in it.
  1309.     
  1310.     OLDROUTINELOCATIONS     - "Old" location of Macintosh system calls are used.  For example, c2pstr 
  1311.                               has been moved from Strings to TextUtils.  It is conditionalized in
  1312.                               Strings with OLDROUTINELOCATIONS and in TextUtils with !OLDROUTINELOCATIONS.
  1313.                               This allows developers to upgrade to newer interface files without 
  1314.                               having to change the includes in their source code.  But, it allows
  1315.                               the slow migration of system calls to more understandable file locations.  
  1316.                               OLDROUTINELOCATIONS currently defaults to true, but eventually will 
  1317.                               default to false.
  1318.  
  1319. ****************************************************************************************************/
  1320. #ifndef OLDROUTINENAMES
  1321. #define OLDROUTINENAMES 0
  1322. #endif  /* !defined(OLDROUTINENAMES) */
  1323.  
  1324. #ifndef OLDROUTINELOCATIONS
  1325. #define OLDROUTINELOCATIONS 0
  1326. #endif  /* !defined(OLDROUTINELOCATIONS) */
  1327.  
  1328.  
  1329.  
  1330. /****************************************************************************************************
  1331.     C specific conditionals
  1332.  
  1333.     CGLUESUPPORTED            - Interface library will support "C glue" functions (function names
  1334.                               are: all lowercase, use C strings instead of pascal strings, use 
  1335.                               Point* instead of Point).
  1336.  
  1337. ****************************************************************************************************/
  1338. #ifndef CGLUESUPPORTED
  1339. #if TARGET_OS_MAC && !defined(THINK_C)
  1340. #define CGLUESUPPORTED 1
  1341. #else
  1342. #define CGLUESUPPORTED 0
  1343. #endif  /* TARGET_OS_MAC && !defined(THINK_C) */
  1344.  
  1345. #endif  /* !defined(CGLUESUPPORTED) */
  1346.  
  1347.  
  1348.  
  1349. /****************************************************************************************************
  1350.     The following macros isolate the use of 68K inlines in function prototypes.
  1351.     On the Mac OS under the Classic 68K runtime, function prototypes were followed
  1352.     by a list of 68K opcodes which the compiler inserted in the generated code instead
  1353.     of a JSR.  Under Classic 68K on the Mac OS, this macro will put the opcodes
  1354.     in the right syntax.  For all other OS's and runtimes the macro suppress the opcodes.
  1355.     Example:
  1356.     
  1357.         EXTERN_P void DrawPicture(PicHandle myPicture, const Rect *dstRect)
  1358.              ONEWORDINLINE(0xA8F6);
  1359.     
  1360. ****************************************************************************************************/
  1361.  
  1362. #if TARGET_OS_MAC && !TARGET_RT_MAC_CFM
  1363.     #define ONEWORDINLINE(w1) = w1
  1364.     #define TWOWORDINLINE(w1,w2) = {w1,w2}
  1365.     #define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3}
  1366.     #define FOURWORDINLINE(w1,w2,w3,w4)  = {w1,w2,w3,w4}
  1367.     #define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5}
  1368.     #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)     = {w1,w2,w3,w4,w5,w6}
  1369.     #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)      = {w1,w2,w3,w4,w5,w6,w7}
  1370.     #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)      = {w1,w2,w3,w4,w5,w6,w7,w8}
  1371.     #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)      = {w1,w2,w3,w4,w5,w6,w7,w8,w9}
  1372.     #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)  = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10}
  1373.     #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)      = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11}
  1374.     #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)      = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12}
  1375. #else
  1376.     #define ONEWORDINLINE(w1)
  1377.     #define TWOWORDINLINE(w1,w2)
  1378.     #define THREEWORDINLINE(w1,w2,w3)
  1379.     #define FOURWORDINLINE(w1,w2,w3,w4)
  1380.     #define FIVEWORDINLINE(w1,w2,w3,w4,w5)
  1381.     #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)
  1382.     #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)
  1383.     #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)
  1384.     #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)
  1385.     #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)
  1386.     #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)
  1387.     #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)
  1388. #endif
  1389.  
  1390.  
  1391.  
  1392. /****************************************************************************************************
  1393.     The following macros fix weirdness with the way some compilers deal with the ## operator.
  1394.     As well, there are some warning macros to flush out the misuse of older macro names.
  1395.     
  1396. ****************************************************************************************************/
  1397.  
  1398. #define GLUE(a,b)   a##b
  1399. #define GLUE2(a,b)  GLUE(a,b)
  1400. #define GLUE3(a,b,c)    GLUE2(GLUE2(a,b),c)
  1401.  
  1402. #define OSTypeConst        FOUR_CHAR_CODE
  1403.  
  1404.  
  1405. /****************************************************************************************************
  1406.     The following macros resolve namespace conflicts with non-mac targets.
  1407.     
  1408. ****************************************************************************************************/
  1409.  
  1410. #if TARGET_OS_MAC
  1411. /* Routines */
  1412. #define MacOpenDriver    OpenDriver
  1413. #define MacCloseDriver    CloseDriver
  1414. #define MacSendMessage    SendMessage
  1415. #define MacCloseWindow    CloseWindow
  1416. #define MacShowWindow    ShowWindow
  1417. #define MacMoveWindow    MoveWindow
  1418. #define MacFindWindow    FindWindow
  1419. #define MacGetMenu GetMenu
  1420. #define MacAppendMenu AppendMenu
  1421. #define MacInsertMenu InsertMenu
  1422. #define MacDeleteMenu DeleteMenu
  1423. #define MacInsertMenuItem InsertMenuItem
  1424. #define MacDrawMenuBar DrawMenuBar
  1425. #define MacAnimatePalette AnimatePalette
  1426. #define MacResizePalette ResizePalette
  1427. #define MacGetCurrentProcess GetCurrentProcess
  1428. #define MacSetPort SetPort
  1429. #define MacSetCursor SetCursor
  1430. #define MacShowCursor ShowCursor
  1431. #define MacLineTo LineTo
  1432. #define MacSetRect SetRect
  1433. #define MacOffsetRect OffsetRect
  1434. #define MacInsetRect InsetRect
  1435. #define MacUnionRect UnionRect
  1436. #define MacEqualRect EqualRect
  1437. #define MacFrameRect FrameRect
  1438. #define MacInvertRect InvertRect
  1439. #define MacFillRect FillRect
  1440. #define MacCopyRgn CopyRgn
  1441. #define MacSetRectRgn SetRectRgn
  1442. #define MacOffsetRgn OffsetRgn
  1443. #define MacUnionRgn UnionRgn
  1444. #define MacXorRgn XorRgn
  1445. #define MacEqualRgn EqualRgn
  1446. #define MacFrameRgn FrameRgn
  1447. #define MacPaintRgn PaintRgn
  1448. #define MacInvertRgn InvertRgn
  1449. #define MacFillRgn FillRgn
  1450. #define MacGetPixel GetPixel
  1451. #define MacPtInRect PtInRect
  1452. #define MacGetCursor GetCursor
  1453. #define MacDrawText DrawText
  1454. #define MacLoadResource LoadResource
  1455. #define MacReplaceText ReplaceText
  1456. #define MacGetCurrentThread GetCurrentThread
  1457.  
  1458.  
  1459. #endif /* TARGET_OS_MAC */
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467. #endif /* __CONDITIONALMACROS__ */
  1468.  
  1469.